package com.hzy.wechat.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 此注解用于缓存feign rpc调用的结果，由于远程调用比较耗时，并且大多数情况下返回的结果都不会改变
 * 在可容忍的时间内缓存结果提升前端响应速度
 * @see FeignCache
 * @author Lianghao Teng
 * @date 2021/9/23 10:00 AM
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface FeignCache {

    /**
     * 指定缓存失效时间
     * 注意：所有的缓存都应该指定一个合适的缓存时间，项目启动时会自动删除feign-client的缓存
     * 如果不指定，则缓存将一直存在，直到下次项目重启
     * @return 缓存失效时间，单位：秒
     */
    int expiresIn() default -1;
}

